home *** CD-ROM | disk | FTP | other *** search
- 1: /*
- 2: * MDB.H (Generalized Static/Dynamic
- 3: * Array Version)
- 4: * Program: Mini-Database
- 5: * Written by: Leor Zolman
- 6: * Module: Program Header File
- 7: */
- 8:
- 9: #define TRUE 1
- 10: #define FALSE 0
- 11:
- 12: #define DYN_ARRAY TRUE
- 13:
- 14: /*
- 15: * Prototypes:
- 16: */
- 17:
- 18: int do_menu(struct menu_item *mnu, char *title);
- 19: void write_db(char *filename);
- 20: int read_db(char *filename);
- 21: void edit_db();
- 22: void fix_db();
- 23: void backup_db();
- 24: void error(char *msg);
- 25: struct record *alloc_rec(void);
- 26: void free_up();
- 27:
- 28: /*
- 29: * Data Definitions:
- 30: */
- 31:
- 32: struct record { /* Database record definition */
- 33: char active; /* TRUE if Active, else FALSE */
- 34: char last[25], first[15];/* Name */
- 35: long id; /* ID Number */
- 36: int age; /* Age */
- 37: char gender; /* M or F */
- 38: float salary; /* Annual Salary */
- 39: };
- 40:
- 41: #define MAX_RECS 1000 /* Maximum number of records */
- 42:
- 43:
- 44: #ifdef MAIN_MODULE /* Make sure data is only */
- 45: #define EXTERN /* DEFINED in the main module, */
- 46: #else /* and declared as EXTERNAL in */
- 47: #define EXTERN extern /* the other modules. */
- 48: #endif
- 49:
- 50:
- 51: #if DYN_ARRAY /* Dynamics array allocation: */
- 52: #define MAX_TO_ADD 100 /* Limit on # of new records */
- 53: EXTERN struct record *(*recs)[]; /* ptr to array */
- 54: #define RECS (*recs) /* of ptrs to struct record */
- 55:
- 56: #else /* Static array allocation: */
- 57: EXTERN struct record *recs[MAX_RECS]; /* Array of ptr */
- 58: #define RECS recs /* to struct of type record */
- 59: #endif
- 60:
- 61: EXTERN int n_recs; /* # of records in current db */
- 62: EXTERN int max_recs; /* Max # of recs allowed */
- 63:
- 64: struct menu_item { /* Menu definition record */
- 65: int action_code; /* Menu item code */
- 66: char *descrip; /* Menu item text */
- 67: };
- 68:
-